package com.zlm.mall.publisher.service;

import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * Author: Harbour
 * Date: 2021-04-23 19:37
 * Desc:
 */
public interface OrderWideService {

    /**
     * 获取当日的订单总金额
     * @param date 日期
     * @return 总金额
     */
    BigDecimal selectOrderAmountTotal (String date);

    /**
     * 查询分时的销售金额
     * @param date 日期
     * @return
     */
    Map<String, BigDecimal> selectOrderAmountHourMap(String date);

    /**
     * 查询分月的销售金额
     * @param latestN 要取到的最新的几个月， -1代表所有
     * @return 最新的几个月份的销售额
     */
    List<Map<String, Object>> selectOrderAmountMonthMap(int latestN);

    /**
     * 查询各省的销售金额
     * @param year 指定年份
     * @return 返回指定年份的各销售金额
     */
    List<Map<String, Object>> selectOrderAmountProvinceMap(int year);

    /**
     * 获取topN 热门品牌
     * @param topN top N
     * @return
     */
    List<Map<String, Object>> selectHotTradeMarkMap(@Param("topN") int topN);

    /**
     * 获取近4个月的销售额去年同时期的对比
     * @return
     */
    List<Map<String, Object>> selectOrderAmountComparisonMap();


    /**
     * 获取近一周销售额
     * @return
     */
    List<Map<String, Object>> selectOrderAmountWeekMap();

    /**
     * 获取用户年龄分布
     * @return
     */
    List<Map<String, Object>> selectUserAgeGroupMap();

    /**
     * 获取近4个月的订单数量对比
     * @return
     */
    List<Map<String, Object>> selectOrderCountMap();
}
